package com.liyiwei.redislock.service;

public interface RLock {
    /**
     * 获取锁
     * @param lockName 锁名称
     * @param releaseTime 超时时间（单位：秒）
     * @param overTime    获取锁的超时时间（单位：秒）
     * @return 解锁标识
     */
    String tryLock(String lockName,String key, long releaseTime,Integer overTime);


    /**
     * 释放锁
     * @param lockName 锁名称
     * @param key 解锁标识
     */
    void unLock(String lockName,String key);

    /**
     * 默认的锁过期时间和重试时间（多长时间获取不到返回）
     * @param lockName 锁的名字
     * @param key key对应的Hash结构的key
     * @return 锁的标识
     */
    String tryLockDefaultByTime(String lockName,String key);

    /**
     * 默认的锁过期时间和重试时间（多长时间获取不到返回）
     * @param lockName 锁的名字
     * @return 锁的标识
     */
    String tryLockDefaultByTime(String lockName);


}
